ffmpeg中使用screen capture recorder录音的问题

您所在的位置:网站首页 dll 卸载 ffmpeg中使用screen capture recorder录音的问题

ffmpeg中使用screen capture recorder录音的问题

2023-08-30 00:39| 来源: 网络整理| 查看: 265

看完本篇文章,可以解决使用ffmpeg录屏时需要的screen capture recorder软件过大问题

在windows下使用ffmpeg 的-gdigrab方法录屏是没有声音的!

ffmpeg -f gdigrab -i desktop test.mp4

解决办法就是注册dshow软件 Screen Capturer Recorder的虚拟音频捕捉设备(virtual-audio-capturer)获取音频。现在网上大多数的教程都是直接从 https://sourceforge.net/projects/screencapturer/files/ 下载安装Screen Capturer Recorder 然后用:

ffmpeg -f dshow -i video="screen-capture-recorder" -f dshow -i audio="virtual-audio-capturer" test.mp4 或 ffmpeg -f gdigrab -i desktop -f dshow -i audio="virtual-audio-capturer" test.mp4

录屏;虽然这种方法可用,但为了录个音还要再去安装一个48M的软件???! 在这里插入图片描述 显然太麻烦了(当然我之前也是这么做的hhh),尤其是做要打包分发的项目时。 我们分析一下上面的录屏代码,发现我们需要的只是virtual-audio-capturer(捕获音频的虚拟设备)而已,有没有办法可以直接获得这个dshow设备呢?

再看一下安装 Screen Capturer Recorder的安装目录 在这里插入图片描述 在这里插入图片描述 virtual-audio(文件夹名称)?screen-capture-recorder.dll?这不正是我们需要的dshow设备名称嘛,再看一下GitHub上的项目,里面也标明了如果需要的较小体积可以直接注册dll。 在这里插入图片描述 现在我们知道了可以通过注册这两个dll(分了64和32位版本所以有4个)获得相应的dshow设备。

其实,screen capture recorder软件那么大是因为它本身就是一个录屏软件,自带了ffmpeg,当然大了,而我们只需要它的virtual-audio-capturer的功能,所以直接注册dll即可!实际使用中,笔者发现GitHub上的那个dll是不能使用的…不知道为什么,所以以下教程是直接从安装的Screen Capturer Recorder软件中提取dll并注册。

从Screen Capturer Recorder提取dll

安装Screen Capturer Recorder(那个48M的软件)后, 我们先测试一下ffmpeg中是否可以读取到screen-capture-recorder和virtual-audio-capturer

ffmpeg -list_devices true -f dshow -i dummy

在这里插入图片描述 然后我们把上面提到的那俩个dll复制出来放好,注意要拿和你的ffmpeg位数相同的dll(我用的ffmpeg是64位的所以复制了带有x64的)。 在这里插入图片描述 然后安装的screen capture recorder软件就可以卸载了 在这里插入图片描述 现在我们再看一下有没有dshow软件 在这里插入图片描述 显然已经没有了(说明已经卸载完了)

注册dll:

接着我们就要把刚才复制出来的两个dll注册到系统中让ffmpeg识别出来 这个就当作普通dll的注册方法: 注册dll一般是在dll目录下打开有管理员权限的命令行,直接输入regsvr32+xxx.dll注册,注意一定要是管理员权限,dll可以放在任何文件夹

例如: 我的dll在E盘根目录下(实际使用可以放在项目目录) 在这里插入图片描述 然后打开管理员命令行:右键左下角win图标-windows powershell(管理员) 在这里插入图片描述 cd 到dll所在目录下(我的是E: \) 在这里插入图片描述 输入注册dll命令:regsvr32 audio_sniffer-x64.dll 注册virtual-audio-capturer dshow滤镜,下图这样就是注册成功了 在这里插入图片描述 然后看一下ffmpeg是否能够读取到dll

ffmpeg -list_devices true -f dshow -i dummy

在这里插入图片描述 可以看到virtual-audio-capturer 滤镜已经注册到系统了,再用:

ffmpeg -f gdigrab -i desktop -f dshow -i audio="virtual-audio-capturer" test.mp4

测试一下录屏是否能录到系统的声音了(麦克风的声音要把virtual-audio-capturer改成麦克风设备)

同样道理,如果想用screen capture recorder的虚拟显示捕获设备,也可以注册screen-capture-recorde.dll也注册了,这里不再累赘。与直接安装screen capture recorder软件相比,dll的注册只占了几十k的空间,美滋滋~

想要卸载dll可以用:regsvr32 /u audio_sniffer-x64.dll 命令

注意一定要用管理员权限的命令行!!!

文中提到的dll已经上传

下载地址:有32位和64位https://download.csdn.net/download/Fandes_F/12273068 在这里插入图片描述 就不用再去下载那个48M的exe文件了(我还能混点积分hhh)

总结:ffmpeg录屏中直接注册audio_sniffer.dll可以获得"virtual-audio-capturer" dshow滤镜用以录系统声音;注册screen-capture-recorder.dll可以获得"screen-capture-recorder" dshow滤镜录屏

菜鸟的经验分享,大佬轻喷。。。。

参考: screen-capture-recorder和virtual-audio-capture的官方说明 https://github.com/rdp/screen-capture-recorder-to-video-windows-free https://github.com/rdp/virtual-audio-capture-grabber-device



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3